home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD020d.dsk / DATA EDITOR.bas < prev    next >
BASIC Source File  |  2003-06-12  |  6KB  |  173 lines

  1. 10 DL = 25056:EL = 25856: REM   DATA LOCATION
  2. 20  TEXT : HOME : HTAB 6: INVERSE 
  3. 30  PRINT "*** SOFTGRAPH DATA EDITOR ***"
  4. 40  GOTO 1800
  5. 50  NORMAL 
  6. 60  POKE 34,1
  7. 70 DL$ =  CHR$(32) + CHR$(8)
  8. 80  GOSUB 2100
  9. 90 VF = 1:HF = 1
  10. 100  GOSUB 2000
  11. 110  GOSUB 2200
  12. 120  GOSUB 2500: PRINT W$;
  13. 130  GET A$:A =  ASC(A$)
  14. 140  IF A <32  THEN 200
  15. 150  IF  LEN(W$) = 8  THEN  PRINT  CHR$(7);: GOTO 130
  16. 160 W$ = W$ +A$: GOSUB 2200: PRINT W$;
  17. 170  GOTO 130
  18. 200  REM   CONTROL COMMAND HANDLER
  19. 210  IF A = 8  THEN 1100
  20. 220  IF A = 21  THEN A = 11
  21. 230  GOSUB 2300
  22. 240  IF A = 24  THEN 600
  23. 250  IF A = 12  THEN 400
  24. 260  IF A = 3  THEN  GOSUB 2000: GOTO 110
  25. 270  IF A = 17  THEN 1000
  26. 280  IF A >8  AND A <14  THEN 1300
  27. 290  IF A = 4  THEN 1500
  28. 300  IF A = 1  THEN 1600
  29. 310  GOTO 130
  30. 400  REM   LEGEND EDITOR
  31. 410  FOR L = 1 TO 4
  32. 420 L$ = ""
  33. 430  VTAB 24: HTAB 1: NORMAL 
  34. 440  PRINT "INPUT LEGEND ";L;":";: INVERSE : PRINT  SPC( 16);: HTAB 16
  35. 450  GET A$: IF A$ =  CHR$(8)  AND  LEN(L$) <2  THEN L$ = "": HTAB 16: PRINT DL$;: GOTO 450
  36. 460  IF A$ =  CHR$(8)  THEN L$ =  LEFT$(L$, LEN(L$) -1): PRINT A$;DL$;: GOTO 450
  37. 470  IF A$ =  CHR$(13)  THEN 510
  38. 480  IF  LEN(L$) = 16  THEN  PRINT  CHR$(7);: GOTO 450
  39. 490  IF  ASC(A$) >31  THEN  PRINT A$;:L$ = L$ +A$: GOTO 450
  40. 500  GOTO 450
  41. 510  NORMAL : IF L$ = ""  THEN 560
  42. 520 L$ =  LEFT$(L$ +"               ",16): REM   15 SPACES
  43. 530  IF L = 1  OR L = 3  THEN  INVERSE 
  44. 540  VTAB 3: HTAB 1 +8 *L:W$ =  LEFT$(L$,8): PRINT W$;:HF = L +1:VF =  -1: GOSUB 2300
  45. 550  VTAB 4: HTAB 1 +8 *L:W$ =  RIGHT$(L$,8): PRINT W$;:HF = L +1:VF = 0: GOSUB 2300
  46. 560  NEXT L
  47. 570  VTAB 24: HTAB 1: CALL  -868
  48. 580 VF = 1:HF = 1: GOTO 110
  49. 600  REM     X FIELD BUILDER
  50. 605  NORMAL 
  51. 610  HOME : PRINT : PRINT : PRINT "DEFINE X AXIS BY:"
  52. 620  PRINT : PRINT "   1. MONTHS"
  53. 630  PRINT "   2. DAYS"
  54. 640  PRINT "   3. RANGE OF NUMBERS"
  55. 650  PRINT "   4. EXIT"
  56. 660  VTAB 12: HTAB 1: PRINT "CHOOSE OPTION: ";: CALL  -868: GET A$
  57. 670 A =  VAL(A$): IF A <1  OR A >4  THEN 660
  58. 672  PRINT A$;
  59. 675  GET A$: IF A$ =  CHR$(8)  THEN 660
  60. 677  IF A$ < > CHR$(13)  THEN 675
  61. 680  ON A GOTO 710,700,840,690
  62. 690  HOME : GOSUB 2100: GOTO 110
  63. 700 U$ = "DAY":HN = 7:TD = 19:BD = 13: GOTO 720
  64. 710 U$ = "MONTH":TD = 12:BD = 1:HN = 12
  65. 720  HOME : PRINT 
  66. 730  PRINT : PRINT "NUMBER OF ";U$;: INPUT "S? ";A$:NM =  INT( VAL(A$))
  67. 740  IF NM <2  OR NM >18  THEN  PRINT : PRINT "CANNOT PROCESS ";NM;" ";U$;"S"; CHR$(7): GOTO 730
  68. 750  PRINT : PRINT "STARTING WITH ";U$;: INPUT " #";A$:SM =  INT( VAL(A$))
  69. 760  IF SM <1  OR SM >HN  THEN  PRINT : PRINT "MUST BE FROM 1 TO ";HN; CHR$(7): GOTO 750
  70. 770  IF BD = 13  THEN SM = SM +12
  71. 780 HF = 1: FOR VF = 1 TO 18
  72. 790  IF SM >TD  THEN SM = BD
  73. 800  IF VF >NM  THEN W$ = " ": GOTO 820
  74. 810 W$ = X$(SM)
  75. 820  GOSUB 2300:SM = SM +1
  76. 830  NEXT VF:VF = 1: GOTO 690
  77. 840  HOME : PRINT 
  78. 850  PRINT : INPUT "HOW MANY NUMBERS? ";A$:NM =  INT( VAL(A$)): IF NM <2  OR NM >18  THEN  PRINT "CANNOT HANDLE ";NM;" NUMBERS"; CHR$(7): GOTO 850
  79. 860  PRINT : INPUT "STARTING NUMBER? ";A$:SM =  VAL(A$)
  80. 870  PRINT : INPUT "INCREMENT BY? ";A$:IM =  VAL(A$): IF IM = 0  THEN  PRINT "CANNOT INCREMENT BY 0"; CHR$(7): GOTO 870
  81. 880 HF = 1: FOR VF = 1 TO 18
  82. 890  IF VF >NM  THEN W$ = " ": GOTO 910
  83. 900 W$ =  STR$(SM): IF  LEN(W$) >8  THEN  PRINT W$;" TOO LONG"; CHR$(7):W$ =  LEFT$(W$,8)
  84. 910  GOSUB 2300
  85. 920 SM = SM +IM
  86. 930  NEXT VF
  87. 940 VF = 1: GOTO 690
  88. 1000  REM   EXIT ROUTINE
  89. 1010  NORMAL 
  90. 1020  VTAB 24: HTAB 1: PRINT "QUIT TO MENU? ";: GET A$: HTAB 1: CALL  -868: IF A$ = "N"  THEN 1050
  91. 1030  IF A$ = "Y"  THEN  TEXT : HOME : VTAB 10: PRINT "INSERT PROGRAM DISK IN DRIVE 1": PRINT "AND HIT A KEY.";: GET A$: PRINT : PRINT  CHR$(4);"RUN MENU,D1"
  92. 1040  GOTO 1020
  93. 1050  GOSUB 2200: GOSUB 2500: PRINT W$;: GOTO 130
  94. 1100  REM   BACKSPACE
  95. 1110  IF W$ = ""  THEN 130
  96. 1120  IF  LEN(W$) = 1  THEN W$ = "": GOSUB 2200: PRINT DL$;: GOTO 130
  97. 1130 W$ =  LEFT$(W$, LEN(W$) -1)
  98. 1140  GOSUB 2200: PRINT W$;DL$;
  99. 1150  GOTO 130
  100. 1300  REM   CURSOR MOVE
  101. 1310  ON A -8 GOTO 1330,1350,1370,130,1390
  102. 1320  GOTO 130
  103. 1330 VF = VF -1: IF VF = 0  THEN VF = 18
  104. 1340  GOTO 110
  105. 1350 HF = HF -1: IF HF = 0  THEN HF = 5
  106. 1360  GOTO 110
  107. 1370 HF = HF +1: IF HF = 6  THEN HF = 1
  108. 1380  GOTO 110
  109. 1390 VF = VF +1: IF VF = 19  THEN VF = 1
  110. 1400  GOTO 110
  111. 1500  REM   DELETE A LINE
  112. 1510 HF = 1: GOSUB 2200
  113. 1520  GOSUB 2500: INVERSE : PRINT W$; SPC( 8 - LEN(W$));: NORMAL 
  114. 1530  VTAB 24: HTAB 1: PRINT "DELETE THIS LINE? ";: GET A$: HTAB 1: CALL  -868: IF A$ = "Y"  THEN 1550
  115. 1540  GOSUB 2200: PRINT W$; SPC( 8 - LEN(W$));: GOTO 110
  116. 1550 RL = DL +40 *(VF +1)
  117. 1560  POKE 236, INT(RL/256)
  118. 1570  POKE 235,RL -256 * PEEK(236)
  119. 1580  CALL 25982:V = VF:H = HF
  120. 1590  GOSUB 2100:VF = V:HF = H: GOTO 110
  121. 1600  REM   ADD A LINE
  122. 1610 HF = 1: GOSUB 2200
  123. 1620  GOSUB 2500: INVERSE : PRINT W$; SPC( 8 - LEN(W$));: NORMAL 
  124. 1630  VTAB 24: HTAB 1: PRINT "ADD A LINE HERE? ";: GET A$: HTAB 1: CALL  -868: IF A$ = "Y"  THEN 1650
  125. 1640  GOSUB 2200: PRINT W$; SPC( 8 - LEN(W$));: GOTO 110
  126. 1650 RL = DL +40 *(VF +1) -1
  127. 1660  POKE 238, INT(RL/256)
  128. 1670  POKE 237,RL -256 * PEEK(238)
  129. 1680  CALL 26023
  130. 1690 V = VF:H = HF
  131. 1700  GOSUB 2100:VF = V:HF = H: GOTO 110
  132. 1800  REM    X AXIS OPTIONS INIT
  133. 1810  DIM X$(19)
  134. 1820  FOR X = 1 TO 19: READ X$(X): NEXT X: GOTO 50
  135. 1830  DATA  JAN,FEB,MAR,APR,MAY,JUN
  136. 1840  DATA  JUL,AUG,SEP,OCT,NOV,DEC
  137. 1850  DATA   SUN,MON,TUE,WED,THU,FRI,SAT
  138. 2000  REM  INITIALIZE DATA
  139. 2010  NORMAL : VTAB 24: HTAB 1: PRINT "CLEAR DATA? ";: GET A$: HTAB 1: CALL  -868: IF A$ = "Y"  THEN 2030
  140. 2020  RETURN 
  141. 2030  CALL 25955
  142. 2040 W$ = "LEGENDS:"
  143. 2050 PL = DL -1: GOSUB 2330
  144. 2100  REM  DISPLAY SCREEN
  145. 2110  CALL 25862
  146. 2120  VTAB 23: HTAB 1: PRINT "COMMANDS: CONTROL-IJKM,C,L,X,A,D,Q";
  147. 2130 VF = 1: RETURN 
  148. 2200  REM  PLACE CURSOR
  149. 2210  VTAB VF +4: HTAB 8 *(HF -1) +1
  150. 2220  NORMAL : IF HF/2 =  INT(HF/2)  THEN  INVERSE 
  151. 2230  RETURN 
  152. 2300  REM  POKE IN WORD
  153. 2310 PL = DL +40 *(VF +1) +8 *(HF -1) -1
  154. 2320  IF W$ = ""  THEN 2370
  155. 2330  FOR LOC = 1 TO  LEN(W$)
  156. 2340  POKE PL +LOC, ASC( MID$ (W$,LOC,1))
  157. 2350  NEXT LOC
  158. 2360  IF  LEN(W$) = 8  THEN 2400
  159. 2370  FOR LOC =  LEN(W$) +1 TO 8
  160. 2380  POKE PL +LOC,32
  161. 2390  NEXT LOC
  162. 2400  RETURN 
  163. 2500  REM  READ WORD
  164. 2510 PL = DL +40 *(VF +1) +8 *(HF -1) -1
  165. 2520 WL = 0:W$ = ""
  166. 2530  FOR LOC = 8 TO 1  STEP  -1
  167. 2540  IF  PEEK(PL +LOC) >32  THEN WL = LOC:LOC = 1
  168. 2550  NEXT LOC
  169. 2560  IF WL = 0  THEN  RETURN 
  170. 2570  FOR LOC = 1 TO WL
  171. 2580 W$ = W$ + CHR$( PEEK(PL +LOC))
  172. 2590  NEXT LOC
  173. 2600  RETURN